home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3dm / audio / alParams.z / alParams
Encoding:
Text File  |  1998-10-20  |  32.7 KB  |  661 lines

  1.  
  2.  
  3.  
  4. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      alParams - Audio Library parameters
  10.  
  11. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.      This manual page describes the semantics of Audio Library (AL)
  13.      parameters.  Parameters are the AL's mechanism for obtaining or setting
  14.      the state of each software or hardware audio resource.  Parameters are
  15.      also used to set/unset audio event notification.
  16.  
  17.      Each type of AL resource accepts different parameters. This manual page
  18.      is divided up into sections, each of which describes a resource type and
  19.      the parameters it accepts. See aaaallllRRRReeeessssoooouuuurrrrcccceeeessss for a more thorough
  20.      description of resources and their properties.
  21.  
  22.      For more information about actually setting and acquiring the values of
  23.      parameters, see aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))) and aaaallllSSSSeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))).
  24.  
  25.      For more information on selecting and deselecting parameters for audio
  26.      event notification, refer to aaaallllSSSSeeeelllleeeeccccttttEEEEvvvveeeennnnttttssss((((3333ddddmmmm)))) and
  27.      aaaallllDDDDeeeesssseeeelllleeeeccccttttEEEEvvvveeeennnnttttssss((((3333ddddmmmm)))).
  28.  
  29. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS AAAANNNNDDDD VVVVAAAALLLLUUUUEEEESSSS
  30.      Parameters are retrieved or set using an ALpv structure. The most
  31.      important two fields in the ALpv are:
  32.  
  33.           typedef union {
  34.                int     param; /* the parameter */
  35.                ALvalue   value;    /* the associated value */
  36.                [...]
  37.           } ALpv;
  38.  
  39.  
  40.      The ALvalue structure is a union of three types:
  41.  
  42.           typedef union {
  43.               int         i;          /* 32-bit integer values */
  44.               long long   ll;         /* 64-bit integer and fixed-point values */
  45.               void*       ptr;        /* pointer values */
  46.           } ALvalue;
  47.  
  48.      The AL supports a small number of data types, each of which uses a
  49.      specific field of the ALvalue. These are:
  50.  
  51.      32-bit integer  Uses the value.i field.
  52.  
  53.      Resource        Uses the value.i field.
  54.  
  55.      Enumeration     Uses the value.i field.
  56.  
  57.      64-bit integer  Uses the value.ll field.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  71.  
  72.  
  73.  
  74.      Fixed-point     Uses the value.ll field. aaaallllFFFFiiiixxxxeeeeddddTTTTooooDDDDoooouuuubbbblllleeee((((3333ddddmmmm)))) and
  75.                      aaaallllDDDDoooouuuubbbblllleeeeTTTTooooFFFFiiiixxxxeeeedddd((((3333ddddmmmm)))) are convenience functions to convert
  76.                      between double-precision floating-point and 64-bit
  77.                      fixed-point.
  78.  
  79.      Vectors, Sets, Matrices, Strings
  80.                      The value.ptr field must point to the actual value.
  81.                      There are also required size fields for these data types.
  82.                      See aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))) and aaaallllSSSSeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))) for more
  83.                      information.
  84.  
  85.      In addition, some parameters may support only some subset of
  86.      aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))), aaaallllSSSSeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))), aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss((((3333ddddmmmm)))),
  87.      aaaallllSSSSeeeelllleeeeccccttttEEEEvvvveeeennnnttttssss((((3333ddddmmmm)))) and aaaallllDDDDeeeesssseeeelllleeeeccccttttEEEEvvvveeeennnnttttssss((((3333ddddmmmm)))).  Also, unless otherwise
  88.      stated, event data information should be retrieved with
  89.      aaaallllGGGGeeeettttEEEEvvvveeeennnnttttVVVVaaaalllluuuueeee((((3333ddddmmmm)))).
  90.  
  91.  
  92. UUUUNNNNIIIIVVVVEEEERRRRSSSSAAAALLLL PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  93.      The following parameters apply to all resources.
  94.  
  95.      AL_TYPE         (32-bit integer, get only)
  96.                      The type of the resource. All resources have types.  Some
  97.                      types are subtypes of another; in this case, parameters
  98.                      which apply to the supertype also apply to the subtype.
  99.                      See the aaaallllIIIIssssSSSSuuuubbbbttttyyyyppppeeee((((3333ddddmmmm)))) manual page for more
  100.                      information.
  101.  
  102.      AL_NAME         (character string, get only)
  103.                      The name of the resource. This name is typically used
  104.                      internally in applications, for example, for saving
  105.                      parameters to files. It can be passed into
  106.                      aaaallllGGGGeeeettttRRRReeeessssoooouuuurrrrcccceeeeBBBByyyyNNNNaaaammmmeeee((((3333ddddmmmm)))) to retrieve the original
  107.                      resource.  It is constant and unique for a given resource
  108.                      on a given system.
  109.  
  110.      AL_LABEL        (character string, get/set/events)
  111.                      The label of the resource. This is a human-readable
  112.                      description of the resource. Use this, for example, for
  113.                      resource selection in menus, or for otherwise displaying
  114.                      resources to users. It is unique on a given system. It is
  115.                      also user-configurable.
  116.  
  117.                      Attempts to set its value to equal an existing label on
  118.                      the same subsystem will be rejected. If the same label
  119.                      exists on another subsystem, the system will render them
  120.                      unique by prepending the names of the subsystems to the
  121.                      labels. The characters '.' and ':' are reserved and
  122.                      cannot be used in labels.
  123.  
  124.                      To retrieve event data information use aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))).
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  137.  
  138.  
  139.  
  140.      AL_NO_OP        (no type, get/set)
  141.                      The ALpv structure associated with this parameter is
  142.                      ignored. This effectively allows a program to "comment
  143.                      out" individual parameter/value pairs in a larger list
  144.                      without restructuring the list.
  145.  
  146.      AL_PARAMS       (set of enum, query)
  147.                      Returns the set of parameters supported by this resource.
  148.  
  149. SSSSYYYYSSSSTTTTEEEEMMMM PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  150.      Each computer has a single system resource, with a fixed resource ID of
  151.      AL_SYSTEM, representing global parameters of the audio software.  The
  152.      following parameters apply to the system resource.
  153.  
  154.      AL_MAX_PORTS    (32-bit integer, get only)
  155.                      The maximum number of audio ports that can be
  156.                      simultaneously open on the system.
  157.  
  158.      AL_UNUSED_PORTS (32-bit integer, get only)
  159.                      The number of unused ports on the system.
  160.  
  161.      AL_MAX_SETSIZE  (32-bit integer, get only)
  162.                      The maximum number of elements used by any set-valued
  163.                      parameter across the system.
  164.  
  165.      AL_DEFAULT_INPUT
  166.                      (resource, get/set/query/events)
  167.                      The current default input device for the system. The
  168.                      resource supplied must be a device. aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss on this
  169.                      parameter will return the set of available input devices.
  170.  
  171.      AL_DEFAULT_OUTPUT
  172.                      (resource, get/set/query/events)
  173.                      The current default output device for the system. The
  174.                      resource supplied must be a device. aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss on this
  175.                      parameter will return the set of available output
  176.                      devices.
  177.  
  178.      AL_DEVICES      (set of resources, query only)
  179.                      The set of devices available on the system.
  180.  
  181.      AL_PORTS        (set of resources, query/events: ALsetChangeInfo *)
  182.                      The set of ports currently in use.
  183.                      Creation or deletion of audio ports will generate events.
  184.                      To retrieve the event value data, use
  185.                      aaaallllGGGGeeeettttEEEEvvvveeeennnnttttDDDDaaaattttaaaa((((3333ddddmmmm)))). This function returns a void pointer
  186.                      to an ALsetChangeInfo struct:
  187.                      typedef struct _ALsetChangeInfo {
  188.                          ALvalue val;    /* value of set element      */
  189.                          int     total;  /* total number of elements  */
  190.                          int     pchange;/* delta ( +1 or -1)         */
  191.                      }ALsetChangeInfo;
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  203.  
  204.  
  205.  
  206.                      The structure consists of val, the inserted or deleted
  207.                      set element; total, the new number of elements in the
  208.                      set; and delta, indicating the change in number of
  209.                      elements.
  210.  
  211.      AL_CONNECTIONS  (set of resources, query/events: ALsetChangeInfo)
  212.                      The set of connections currently in use.  Events will get
  213.                      generated as connections (or disconnections) are made to
  214.                      devices in the audio system.  To retrieve the event value
  215.                      data use aaaallllGGGGeeeettttEEEEvvvveeeennnnttttDDDDaaaattttaaaa((((3333ddddmmmm)))).  This function returns a
  216.                      void pointer to an ALsetChangeInfo struct.  Refer to
  217.                      AL_PORTS for more information.
  218.                      The set of connections currently in use.
  219.  
  220.      AL_TYPE         (32-bit integer, get only)
  221.                      Returns AL_SYSTEM_TYPE.
  222.  
  223. DDDDEEEEVVVVIIIICCCCEEEE PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  224.      An audio device is the top level of control for an input or output audio
  225.      data stream. It is the place to which applications connect their ports to
  226.      perform input or output. Each device has a cccclllloooocccckkkk----ggggeeeennnneeeerrrraaaattttoooorrrr to provide it
  227.      with a sample-rate, and potentially a number of _i_n_t_e_r_f_a_c_e_s, each of which
  228.      corresponds with a physical audio jack on the system.  A device will
  229.      accept parameters for the clock-generator and interfaces it is currently
  230.      using.
  231.  
  232.      AL_CHANNELS     (32-bit integer, get/set/query/events)
  233.                      The number of channels supported by the device. Some
  234.                      devices may support variable numbers of channels.
  235.  
  236.      AL_INTERFACE    (resource, get/set/query/events on input devices; query
  237.                      only for output devices)
  238.                      For input devices, this is the interface (input source)
  239.                      currently in use. Input devices can use only one
  240.                      interface at a time, and typically support setting
  241.                      AL_INTERFACE.
  242.  
  243.                      Output devices usually drive all available interfaces
  244.                      simultaneously; in this case, they will not support
  245.                      setting AL_INTERFACE, and will always return a value of
  246.                      AL_ALL_INTERFACES for this parameter.  However, a few
  247.                      output devices share interfaces with other devices, and
  248.                      therefore allow setting of AL_INTERFACE.  Use the
  249.                      _o_p_e_r_a_t_i_o_n_s field of aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmIIIInnnnffffoooo((((3333ddddmmmm)))) to determine if
  250.                      AL_INTERFACE is settable on a particular device.
  251.  
  252.                      The interface can be specified as a specific resource or
  253.                      by type (for example, AL_MIC_IF_TYPE to indicate a
  254.                      microphone interface). If the interface is given by type,
  255.                      the AL will choose an appropriate interface of the given
  256.                      type.
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  269.  
  270.  
  271.  
  272.                      aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss((((3333ddddmmmm)))) returns the set of interfaces
  273.                      available to the device.
  274.  
  275.      AL_CLOCK_GEN    (resource, get/set/query/events)
  276.                      The clock-generator this device is using to provide its
  277.                      sample-rate.  aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss((((3333ddddmmmm)))) returns the set of
  278.                      clock-generators available to the device.
  279.  
  280.      AL_TYPE         (32-bit integer, get only)
  281.                      The type of the device. Input devices will return some
  282.                      subtype of AL_INPUT_DEVICE_TYPE; output devices will
  283.                      return some subtype of AL_OUTPUT_DEVICE_TYPE. Use
  284.                      aaaallllIIIIssssSSSSuuuubbbbttttyyyyppppeeee((((3333ddddmmmm)))) to determine if one type is a subtype of
  285.                      another.
  286.  
  287.      AL_CONNECT      (ALconnectionInfo*, events only: ALconnectionInfo)
  288.                      A connection involving the device occurred.  To retrieve
  289.                      the event value data, use aaaallllGGGGeeeettttEEEEvvvveeeennnnttttDDDDaaaattttaaaa((((3333ddddmmmm)))).  This
  290.                      function returns a void pointer to an ALconnectionInfo
  291.                      struct.  The struct contains the id for the source
  292.                      resource, destination resource and connection resource.
  293.                      It is defined as:
  294.                      typedef struct _ALconnectionInfo {
  295.                          int source;
  296.                          int dest;
  297.                          int connection;
  298.                      } ALconnectionInfo;
  299.  
  300.      AL_DISCONNECT   (ALconnectionInfo*, events only: ALconnectionInfo) A
  301.                      disconnect involving the device occurred.  To retrieve
  302.                      the event information data use: aaaallllGGGGeeeettttEEEEvvvveeeennnnttttDDDDaaaattttaaaa((((3333ddddmmmm)))). This
  303.                      function returns a void pointer to al ALconnectionInfo.
  304.                      Refer to AL_CONNECT for more information.
  305.  
  306.      AL_SUBCODE_FORMAT
  307.                      (set of enum, query)
  308.                      The set of subcode data formats supported by the device.
  309.                      Values can be AL_AES_CHANNEL_STATUS, AL_AES_USER,
  310.                      AL_AES_VALIDITY.  Subcode data streams describe distinct
  311.                      channels of continuous non-audio data that are inherently
  312.                      associated with a digital audio stream.
  313.  
  314.      AL_SUBCODE_FRAMESIZE
  315.                      (int, get only)
  316.                      If supported, indicates the number of bytes into which a
  317.                      single channel of subcode data will fit.  This value is
  318.                      often used in conjunction with AL_SUBCODE_CHANNELS to
  319.                      determine sizing for memory allocation.  For AES subcode,
  320.                      this value is 24, as defined by the IEC958/AES3
  321.                      specifications for the transmission of digital audio
  322.                      signals. For ADAT subcode, this value is 4.
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  335.  
  336.  
  337.  
  338.      AL_SUBCODE_CHANNELS
  339.                      (int, get only)
  340.                      If supported, the number of subcode channels supported by
  341.                      a device for all subcode formats.  This value when
  342.                      multiplied by the value provided by AL_SUBCODE_FRAMESIZE
  343.                      gives the size, in bytes of an entire multi-channel frame
  344.                      of subcode data.
  345.  
  346.      AL_INTERVAL     (int, get only)
  347.                      If supported, indicates the number of audio frames
  348.                      required for the complete transmission of one multi-
  349.                      channel frame of subcode data.
  350.  
  351.      AL_AES_CHANNEL_STATUS, AL_AES_USER, AL_AES_VALIDITY
  352.                      (vector of bytes, get/set) These parameters, if
  353.                      supported, provide a means for a quick get or set of
  354.                      subcode data. They are not intended for real-time use.
  355.                      For input devices, these parameters are get-only and the
  356.                      returned vector of bytes is most recently captured full
  357.                      multi-channel subcode frame corresponding to the subcode
  358.                      data format parameter.  For output devices, these
  359.                      parameters may have either get/set or get-only
  360.                      capabilities (depending on hardware -- use
  361.                      alGetParamInfo(3a) to check) and indicate the default
  362.                      multi-channel subcode frame to be transmitted.
  363.  
  364.                      Subcode data bit ordering always puts subcode Byte 0, bit
  365.                      0 in the most significant bit of Byte 0, thus allowing a
  366.                      big-endian bit shift operation to correspond to a subcode
  367.                      data time shift.  See the IEC958 "Digital Audio
  368.                      Interface" and AES3-1992 "Serial Transmission Format For
  369.                      Two-Channel Linearly Represented Audio Data"
  370.                      specifications for the details on what the AES subcode
  371.                      data bits actually represent.
  372.  
  373.  
  374. IIIINNNNTTTTEEEERRRRFFFFAAAACCCCEEEE PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  375.      Each device has a number of iiiinnnntttteeeerrrrffffaaaacccceeeessss, each of which corresponds to a
  376.      physical audio jack or set of jacks on the machine.  Input devices use
  377.      one interface at a time.
  378.  
  379.      Output devices usually drive all their interfaces simultaneously with the
  380.      same audio data. In some cases, an output device will only drive one
  381.      interface at a time, usually because it is sharing an interface with
  382.      another device. For example, the AESOut and ADATOut devices on some
  383.      systems can share an optical interface, in which case each device drives
  384.      only one interface at a time.
  385.  
  386.      AL_GAIN         (vector of fixed-point values, get/set/events)
  387.                      The gain, in decibels (dB), per channel. Positive values
  388.                      represent gain; negative values represent attenuation.
  389.                      Interfaces without gain capability will return values of
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  401.  
  402.  
  403.  
  404.                      0 dB. The audio system will round unsupported gain values
  405.                      down to the nearest supported value.
  406.  
  407.                      There are two special values for gain.  An application
  408.                      can set a value of AL_NO_CHANGE on any channel, causing
  409.                      the gain value for that channel to remain unchanged. This
  410.                      value is supported on all interfaces. Also, the special
  411.                      value of AL_NEG_INFINITY corresponds to a gain of
  412.                      negative infinity decibels (mute). AL_NEG_INFINITY is
  413.                      only supported on some interfaces.
  414.  
  415.                      To determine the gain range for an interface, and whether
  416.                      or not it supports AL_NEG_INFINITY, use the
  417.                      aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmIIIInnnnffffoooo((((3333ddddmmmm)))) call. This returns an ALparamInfo
  418.                      structure for the AL_GAIN parameter on a particular
  419.                      interface. The mmmmiiiinnnn and mmmmaaaaxxxx fields of the ALparamInfo
  420.                      correspond to the minimum and maximum finite gain values,
  421.                      respectively.  If AL_NEG_INFINITY is supported, the
  422.                      AL_NEG_INFINITY_BIT will be set in the specialVals field.
  423.  
  424.                      To obtain event data information use aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))).
  425.  
  426.      AL_MUTE         (32-bit integer, get/set/events) If true, mutes an output
  427.                      interface. If false, the interface is unmuted. Some
  428.                      output interfaces may ignore this (e.g. most digital
  429.                      interfaces).
  430.  
  431.                      This parameter does not affect the value of the AL_GAIN
  432.                      parameter. An application which desires the "true" gain
  433.                      of the interface should look at both AL_GAIN and AL_MUTE.
  434.  
  435.      AL_WORDSIZE     (32-bit integer, get/set/query/events)
  436.                      The number of significant bits on the interface. Though
  437.                      the AL will accept or produce 8-,16-, and 24-bit data
  438.                      with any interface, different interfaces will have
  439.                      differing numbers of significant bits. For example, most
  440.                      digital interfaces have 24 significant bits, while most
  441.                      analog interfaces have 16 or 18.
  442.  
  443.      AL_CHANNELS     (32-bit integer, get/set/query/events)
  444.                      The number of significant channels supported by the
  445.                      interface. Note that this may differ from the number of
  446.                      channels supported by the device using the interface. For
  447.                      example, a stereo input device may have one mono
  448.                      microphone input and one stereo line-level input.  In
  449.                      this case, the device returns AL_CHANNELS=2, and the
  450.                      interfaces return AL_CHANNELS=1 and AL_CHANNELS=2,
  451.                      respectively.
  452.  
  453.      AL_TYPE         (32-bit integer, get)
  454.                      The type of the interface. All are subtypes of
  455.                      AL_INTERFACE_TYPE. Digital interfaces will be subtypes of
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  467.  
  468.  
  469.  
  470.                      AL_DIGITAL_INTERFACE_TYPE; analog interfaces will be
  471.                      subtypes of AL_ANALOG_INTERFACE_TYPE. Refer to audio.h
  472.                      for a complete listing of interface types, and to
  473.                      aaaallllIIIIssssSSSSuuuubbbbttttyyyyppppeeee((((3333ddddmmmm)))) for information on subtypes in general.
  474.  
  475. CCCCLLLLOOOOCCCCKKKK----GGGGEEEENNNNEEEERRRRAAAATTTTOOOORRRR PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  476.      A clock-generator provides the sample-rate clock to an audio device. Each
  477.      clock-generator takes a particular frequency reference, called a mmmmaaaasssstttteeeerrrr
  478.      cccclllloooocccckkkk, and provides a precise fraction of that master clock to the audio
  479.      device. For simplicity, an audio device will accept parameters on behalf
  480.      of the clock-generator it uses.
  481.  
  482.      AL_RATE         (fixed-point, get/set/events)
  483.                      The nominal sample-rate, in hertz. Unsupported values are
  484.                      rounded to the nearest supported value.
  485.  
  486.                      When an application gets the value of AL_RATE, the AL
  487.                      will return the current nominal master clock rate times
  488.                      the current rate-fraction (see AL_RATE_FRACTION_*,
  489.                      below). In some cases, when the AL cannot determine the
  490.                      nominal sample-rate of the master clock, it will be
  491.                      unable to return a nominal sample-rate for the clock-
  492.                      generator. In these cases, the AL will return a negative
  493.                      value for AL_RATE.
  494.  
  495.                      When an application sets the value of AL_RATE, the AL
  496.                      will set the value of the rate-fraction (see
  497.                      AL_RATE_FRACTION_*, below) based upon the nominal master
  498.                      clock rate. If the nominal master clock rate is unknown,
  499.                      the AL will _n_o_t change the sample-rate.  Also, if the
  500.                      master clock rate changes, the AL will not automatically
  501.                      update the rate-fraction for a rate set by AL_RATE. For
  502.                      variable-rate master clocks, it is therefore usually
  503.                      better to use AL_RATE_FRACTION_* to set the sample-rate.
  504.                      For fixed-rate master clocks, such as crystals or video
  505.                      sources, AL_RATE and AL_RATE_FRACTION_* are equivalent
  506.                      representations.
  507.  
  508.                      _N_o_t_e:In general, the master clock should be specified
  509.                      when the rate is changed.
  510.  
  511.      AL_RATE_FRACTION_N, AL_RATE_FRACTION_D
  512.                      (32-bit integer, get/set/events)
  513.                      The sample-rate, represented as an exact fraction (N/D)
  514.                      of the master clock. The value of (N/D) must lie between
  515.                      0 and 1.  If the exact fraction given cannot be
  516.                      supported, the AL will substitute a nearby fraction.
  517.  
  518.                      If these two parameters are given in the same call to
  519.                      aaaallllSSSSeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))) or aaaallllGGGGeeeettttPPPPaaaarrrraaaammmmssss((((3333ddddmmmm)))), they will be set or
  520.                      acquired atomically.
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  533.  
  534.  
  535.  
  536.                      In general, the master clock should be specified when the
  537.                      rate is changed.
  538.  
  539.      AL_MASTER_CLOCK (resource; get/set/query/events)
  540.                      The master clock from which this clock-generator derives
  541.                      its rate.
  542.  
  543.                      The master clock can be specified as a specific resource
  544.                      or by type (for example, AL_CRYSTAL_MCLK_TYPE to indicate
  545.                      a crystal-based master clock). If the master clock is
  546.                      given by type, the AL will choose an appropriate master
  547.                      clock of the given type.
  548.  
  549.                      aaaallllQQQQuuuueeeerrrryyyyVVVVaaaalllluuuueeeessss((((3333ddddmmmm)))) returns the set of master clocks
  550.                      available to the clock-generator.
  551.  
  552.      AL_TYPE         (int, get only)
  553.                      The type of the clock-generator. Returns
  554.                      AL_CLOCKGEN_TYPE.
  555.  
  556. MMMMAAAASSSSTTTTEEEERRRR----CCCCLLLLOOOOCCCCKKKK PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  557.      AL_RATE         (fixed-point, get/events)
  558.                      The nominal rate of the master clock, in hertz. If the
  559.                      nominal rate is unknown, a negative value is returned.
  560.                      Some master clocks have variable sampling rates.  An
  561.                      event will be generated if the rate of the master clock
  562.                      changes.
  563.  
  564.      AL_TYPE         (int, get only)
  565.                      The type of the master clock. All are subtypes of
  566.                      AL_MCLK_TYPE.  Fixed-rate master clocks, such as video-
  567.                      based clocks and crystal-based clocks, are subtypes of
  568.                      AL_FIXED_MCLK_TYPE. Variable-rate master clocks, such as
  569.                      AES- and ADAT-derived rates, are subtypes of
  570.                      AL_VARIABLE_MCLK_TYPE.
  571.  
  572.      AL_VIDEO_SYNC   (enum, get/set/query/events)
  573.                      This parameter is only applicable on master clocks which
  574.                      are subtypes of AL_VIDEO_MCLK_TYPE.  Valid values are
  575.                      AL_VID_INTERNAL and AL_VID_EXTERNAL, depending on whether
  576.                      the video timing signal is to come from an internal video
  577.                      sync bus or via an external video blackburst fed directly
  578.                      into the audio subsystem.
  579.  
  580. CCCCOOOONNNNNNNNEEEECCCCTTTTIIIIOOOONNNN PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  581.      A connection is a resource which moves audio data between an audio device
  582.      and an audio port, or between two audio devices. See the man page for
  583.      aaaallllCCCCoooonnnnnnnneeeecccctttt((((3333ddddmmmm)))) for more information.
  584.  
  585.      AL_SOURCE       (resource, get only)
  586.                      The source of the connection.
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))                                                    aaaallllPPPPaaaarrrraaaammmmssss((((3333ddddmmmm))))
  599.  
  600.  
  601.  
  602.      AL_DEST         (resource, get only)
  603.                      The destination of the connection.
  604.  
  605. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  606. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  607.      alSetParams(3dm), alGetParams(3dm), alGetParamInfo(3dm),
  608.      alQueryValues(3dm)
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.